not(X):-X,!,fail.
not(_).

a(X):-b(X), write(b(X)), nl.
a(X):-c(X), write(c(X)), nl.
b(2).
c(3).
prova_cut(X,Y):-a(X),!,a(Y).

predicato(X,Y):-prova_cut(X,Y).
predicato(2,3).
